home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 008 / bonus.arc / CONVERT.BAS < prev    next >
Encoding:
BASIC Source File  |  1986-09-15  |  4.4 KB  |  126 lines

  1. 1000 REM
  2. 1010 REM Convert 2.5 DXF File to 2.1 Format
  3. 1020 REM Removes all incompatabilities
  4. 1023 REM    ie, MINSERT row and column counts lost,
  5. 1026 REM        COLOR and LINETYPE by Entity lost, and
  6. 1029 REM        New System Variables removed.
  7. 1030 REM
  8. 1040 LINE INPUT "Acad 2.5 DXF file name:  "; A$
  9. 1050 A$=A$+".dxf"
  10. 1060 OPEN "i",1,A$
  11. 1070 LINE INPUT "Acad 2.18 DXF file name: "; B$
  12. 1080 B$=B$+".dxf"
  13. 1090 OPEN "o",2,B$
  14. 1100 REM
  15. 1110 REM Start the input and output
  16. 1120 REM
  17. 1130 GOSUB 3000
  18. 1160 IF S$="HEADER" THEN GOSUB 2000
  19. 1170 IF S$="ENTITIES" THEN GOSUB 2500
  20. 1180 IF S$="BLOCKS" THEN GOSUB 2500
  21. 1185 IF S$="STYLE" THEN GOSUB 2800
  22. 1190 IF S$ = "EOF" THEN GOTO 5000
  23. 1320 GOSUB 4000
  24. 1380 GOSUB 3000
  25. 1390 IF G% = 0 OR G% = 2 THEN GOTO 1160 ELSE GOTO 1320
  26. 2000 REM
  27. 2002 REM Subroutine to process the Header section
  28. 2003 REM
  29. 2005 IF S$ = "ENDSEC" THEN RETURN
  30. 2010 IF S$ = "$ANGBASE" THEN GOTO 2400
  31. 2020 IF S$ = "$ANGDIR" THEN  GOTO 2400
  32. 2030 IF S$ = "$CECOLOR" THEN GOTO 2400
  33. 2040 IF S$ = "$CELTYPE" THEN GOTO 2400
  34. 2050 IF S$ = "$COORDS" THEN GOTO 2400
  35. 2060 IF S$ = "$DIMALT" THEN GOTO 2400
  36. 2070 IF S$ = "$DIMALTD" THEN GOTO 2400
  37. 2080 IF S$ = "$DIMALTF" THEN GOTO 2400
  38. 2090 IF S$ = "$DIMBLK" THEN GOTO 2400
  39. 2100 IF S$ = "$DIMDLE" THEN GOTO 2400
  40. 2110 IF S$ = "$DIMLFAC" THEN GOTO 2400
  41. 2120 IF S$ = "$DIMRND" THEN GOTO 2400
  42. 2130 IF S$ = "$DIMZIN" THEN GOTO 2400
  43. 2140 IF S$ = "$DRAGP1" THEN GOTO 2400
  44. 2150 IF S$ = "$DRAGP2" THEN GOTO 2400
  45. 2160 IF S$ = "$FASTZOOM" THEN GOTO 2400
  46. 2170 IF S$ = "$HIGHLIGHT" THEN GOTO 2400
  47. 2180 IF S$ = "$HIGHLIGHT" THEN GOTO 2400
  48. 2190 IF S$ = "$MIRRTEXT" THEN GOTO 2400
  49. 2200 IF S$ = "$PDMODE" THEN GOTO 2400
  50. 2210 IF S$ = "$PDSIZE" THEN GOTO 2400
  51. 2220 IF S$ = "$PLINEWID" THEN GOTO 2400
  52. 2230 IF S$ = "$SKPOLY" THEN GOTO 2400
  53. 2240 IF S$ = "$TDCREATE" THEN GOTO 2400
  54. 2250 IF S$ = "$TDINDWG" THEN GOTO 2400
  55. 2255 IF S$ = "$TDUPDATE" THEN GOTO 2400
  56. 2258 IF S$ = "$USRTIMER" THEN GOTO 2400
  57. 2260 IF S$ = "$TDUSRTIMER" THEN GOTO 2400
  58. 2262 IF S$ = "$USERR1" THEN GOTO 2400
  59. 2264 IF S$ = "$USERR2" THEN GOTO 2400
  60. 2266 IF S$ = "$USERR3" THEN GOTO 2400
  61. 2268 IF S$ = "$USERR4" THEN GOTO 2400
  62. 2270 IF S$ = "$USERR5" THEN GOTO 2400
  63. 2272 IF S$ = "$USERI1" THEN GOTO 2400
  64. 2274 IF S$ = "$USERI2" THEN GOTO 2400
  65. 2276 IF S$ = "$USERI3" THEN GOTO 2400
  66. 2278 IF S$ = "$USERI4" THEN GOTO 2400
  67. 2280 IF S$ = "$USERI5" THEN GOTO 2400
  68. 2320 GOSUB 4000
  69. 2321 REM The following two statements correct an error in the
  70. 2322 REM       DXF format of Version 2.18
  71. 2323 IF S$ = "$TEXTSTYLE" THEN GOSUB 3000 : G% = 8 : GOTO 2340
  72. 2324 IF S$ = "$CLAYER" THEN GOSUB 3000 : G% = 7 : GOTO 2340
  73. 2330 GOSUB 3000
  74. 2340 IF G% = 9 OR G% = 0 THEN GOTO 2005 ELSE GOTO 2320
  75. 2400 GOSUB 3000
  76. 2410 IF G% = 9 OR G% = 0 THEN GOTO 2005 ELSE GOTO 2400
  77. 2500 REM
  78. 2502 REM Subroutine to process the Entity AND Block sections
  79. 2503 REM
  80. 2505 IF S$ = "INSERT" THEN GOSUB 2600
  81. 2510 IF G% = 6 OR G% = 62 THEN GOTO 2580
  82. 2520 GOSUB 4000
  83. 2580 GOSUB 3000
  84. 2590 IF S$ = "EOF" OR S$ = "ENDSEC" THEN RETURN
  85. 2595 GOTO 2505
  86. 2600 REM
  87. 2602 REM Subroutine to process the INSERT Entities
  88. 2603 REM
  89. 2610 IF G% = 44 OR G% = 45 OR G% = 6 OR G% = 62 THEN GOTO 2680
  90. 2615 IF G% = 70 OR G% = 71 THEN GOTO 2680
  91. 2620 GOSUB 4000
  92. 2680 GOSUB 3000
  93. 2690 IF G% <> 0 THEN GOTO 2610
  94. 2700 IF G% = 0 AND S$ = "INSERT" THEN GOTO 2610 ELSE RETURN
  95. 2800 REM
  96. 2810 REM Subroutine to process STYLE Entries and remove bigfont
  97. 2820 REM      field (type 4)
  98. 2825 REM
  99. 2830 IF G% = 4 THEN GOTO 2850
  100. 2840 GOSUB 4000
  101. 2850 GOSUB 3000
  102. 2860 IF G% <> 0 THEN GOTO 2830
  103. 2870 IF G% = 0 AND S$ = "STYLE" THEN GOTO 2830 ELSE RETURN
  104. 3000 REM
  105. 3010 REM Read group code and following value
  106. 3020 REM
  107. 3030 INPUT #1, G%
  108. 3040 IF G% < 10 THEN LINE INPUT #1, S$ : RETURN
  109. 3050 IF G% >= 10 AND G% <= 49 THEN INPUT #1, V : RETURN
  110. 3060 IF G% >= 50 AND G% <= 59 THEN INPUT #1, A : RETURN
  111. 3070 IF G% >= 60 AND G% <= 69 THEN INPUT #1, P% : RETURN
  112. 3080 IF G% >= 70 AND G% <= 79 THEN INPUT #1, F% : RETURN
  113. 3090 RETURN
  114. 4000 REM Subroutine to write acceptable group codes and values
  115. 4005 REM
  116. 4007 PRINT #2, G%
  117. 4008 IF G% < 10 THEN PRINT #2,S$ : RETURN
  118. 4010 IF G% >= 10 AND G% <= 49 THEN PRINT #2, V :RETURN
  119. 4020 IF G% >= 50 AND G% <= 59 THEN PRINT #2,A : RETURN
  120. 4030 IF G% >= 60 AND G% <= 69 THEN PRINT #2,P% : RETURN
  121. 4040 IF G% >= 70 AND G% <= 79 THEN PRINT #2,F% : RETURN
  122. 4050 RETURN
  123. 5000 PRINT #2, G% : PRINT #2, S$  
  124. 5010 PRINT "Conversion complete"
  125. 5020 END 
  126.